package com.kfm.pm;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Vector;

public class Test02 {

    public static void main(String[] args) {

        Vector vector = new Vector(5);
//        vector.add(2);
//        vector.add(3);
//        vector.add(4);
//        vector.add(1);
//        vector.add(5);
//        vector.add(6);
        vector.add(new QQCY("喜羊羊", 17, "学习"));
        vector.add(new QQCY("美羊羊", 16, "爱美"));
        vector.add(new QQCY("沸羊羊", 15, "舔羊"));
        vector.add(new QQCY("灰太狼", 30, "抓羊"));
        vector.add(new QQCY("小灰灰", 5, "吃"));
        vector.add(new QQCY("懒羊羊", 15, "睡觉"));
        // 修改下标为1的姓名为暖羊羊
        Object obj = vector.get(1);
        if (obj instanceof QQCY qqcy) {
            qqcy.setName("暖羊羊");
        }

        // 方法一创建实现了Comparator接口的实现类对象
        vector.sort(new QQCYComparator());
        // 匿名类
        vector.sort(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                if (o1 instanceof QQCY q1 && o2 instanceof QQCY q2) {
                    return q1.getAge() - q2.getAge();
                }
                return 0;
            }
        });
        // 匿名类转换成lambda表达式
        vector.sort((o1, o2) -> {
            if (o1 instanceof QQCY q1 && o2 instanceof QQCY q2) {
                return q1.getAge() - q2.getAge();
            }
            return 0;
        });
        Iterator iterator = vector.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

    }
}

class QQCYComparator implements Comparator {

    @Override
    public int compare(Object o1, Object o2) {
        if (o1 instanceof QQCY q1) {
            if (o2 instanceof QQCY q2) {
                return q1.getAge() - q2.getAge();
            }
        }
        return 0;
    }
}
